package com.heima.kebiancanshu.per01;

import java.util.ArrayList;
import java.util.function.Consumer;
//stream流的终结方法
//void forEach(Consumer action)对流中每个元素进行操作
//Consumer接口中的方法void accept(T t)对给定的参数此操作
public class Stream04 {
    public static void main(String[] args) {
        ArrayList<String>list=new ArrayList<>();
        list.add("123");
        list.add("444");
        list.add("666");
        list.add("555");

        //forEach方法的底层，会循环获得到流中的每一个数据
        //并循环调用accept方法，并把每个数据传递给accept方法
        //s就是依次表示流中的每一个数据
        //所有，我们只要在accept方法中，写上业务逻辑就可以了
        //1.通过匿名内部类方式
        list.stream().forEach(new Consumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });
        //2.labbad表达式简化方式，是因为Consumer接口中只有一个accept抽象方法
        list.stream().forEach((String s)-> {System.out.println(s);});
        //3.简化lambada方式
        list.stream().forEach( s-> System.out.println(s));
    }
}
